package com.chen;

import java.io.File;

public class RecursionDemo {
    public static void main(String[] args) {
        // 第一天猴子有多少个桃子
//        System.out.println(getCount(1));
//        System.out.println(getCount(2));
        // 获取D盘根目录
        File file = new File("C:\\");
        searchFile(file,"QQ.exe");

    }

    /**
     * 根据文件名获取文件路径
     * @param file 文件对象
     * @param fileName 文件名称
     */
    public static void searchFile(File file, String fileName) {
        // 进行极端判断
        if (file == null || !file.exists() || file.isFile()) {
            return;
        }

        // 获取一级目录文件对象
        File[] files = file.listFiles();
        // 进行极端判断
        if (files != null) {
            for (File f : files) {
                if (f.isFile() && f.getName().contains(fileName)) {
                    System.out.println("已经找到文件，文件所在目录：" + f.getAbsolutePath());
                }else {
                    searchFile(f, fileName);
                }
            }

        }
    }

    /**
     * 猴子吃桃问题
     * @param n 天数
     */
    public static int getCount(int n) {
        // 公式：f(n) = 2f(n+1)+2
        // 终结点：f(10) = 1
        if (n == 10) {
            return 1;
        }
        return 2*getCount(n+1)+2;
    }
}
